// 封装本地存储操作模块

/**
 * 储存数据（新增，修改数据）
 */
export const setItem = (key, value) => {
  //  判断value是否为引用类型，若是需要转化为JSON字符串
  //  将数组，对象等引用数据类型转为JSON字符串存储
  //  将简单数据类型直接存储
  if (typeof value === 'object') {
    value = JSON.stringify(value)
  }
  localStorage.setItem(key, value)
}
/**
 * 获取数据
 */
export const getItem = key => {
  // 如果该键存储的是引用数据类型的JSON字符串，那么需要进行JSON.parse的转换
  const data = localStorage.getItem(key)
  try {
    // 使用JSON.parse做数据转换可能会报错
    // 两种解决方法，1 ，添加判断（要找到所有满足，不满足的条件，太复杂） 2.错误判断
    // 使用trycatch，做转换的尝试。如果报错了说明不能进行转换，就将原始数据返回
    return JSON.parse(data)
  } catch (error) {
    return data
  }
}
/**
 * 删除数据
 */
export const removeItem = key => {
  localStorage.removeItem(key)
}
